package com.springboot.frame.excel.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.io.File;


/**
 * @author madman
 */
@AllArgsConstructor
public enum Excels {

  /**
   * Excel 03-06版本：Sheet最大行数是65535，文件名后缀是<p>.xls</p>
   */
  XLS("org.apache.poi.hssf.usermodel.HSSFWorkbook"),
  /**
   * Excel 07以后版本：Sheet最大行数时1048576，文件名后缀是<p>.xlsx</p>
   */
  XLSX("org.apache.poi.xssf.usermodel.XSSFWorkbook"),
  /**
   * Excel数据量大的版本
   */
  BIG("org.apache.poi.xssf.streaming.SXSSFWorkbook");

  /**
   * POI对应Workbook Class名称
   */
  @Getter
  private String name;

  /**
   * 获取POI对应的Workbook Class名称
   *
   * @param file 导出文件
   */
  public static Excels nameOfType(File file) {
    String fileType = file.getName().substring(file.getName().lastIndexOf('.') + 1);
    String xlsType = "xls";
    String xlsxType = "xlsx";
    if (xlsType.equals(fileType)) {
      return Excels.XLS;
    } else if (xlsxType.equals(fileType)) {
      return Excels.XLSX;
    } else {
      return Excels.XLS;
    }
  }

}
